Міністерство освіти та науки України
НУ „Львівська політехніка”
Лекція №9
з курсу: «Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах»
Львів - 2010
Розділ 7. Запис
У практиці програмування досить часто доводиться мати справу
даними, які природним чином складаються з інших даних. Наприклад,
відомості про учня містять прізвище, ім'я, по батькові, число, місяць і рік
народження, домашню адресу і інші дані. Для представлення подібної
інформації в мові Delphi використовується структура, яка носить назву
запис (record).
З одного боку, запис можна розглядати як єдину структуру, а з іншої —
як набір окремих елементів, компонентів. Характерною особливістю запису
є те, що складові її компоненти можуть бути різного типу. Інша особливість
запису полягає в тому, що кожен компонент запису має ім'я.
Отже, запис — це структура даних, що складається з окремих
іменованих компонентів різного типу, званих полями.
7.1. Оголошення запису
Як будь-який тип, що створюється програмістом, тип "запис" повинен
бути оголошений в розділі type. У загальному вигляді оголошення типу
"запис" виглядає так:
Ім'я = record
Поле_1 : Тип_1;
Поле_2 : Тип_2;
Поле_к :
Тип_к;
end;
де:
• Ім'я — ім'я типу "запис";
• record — зарезервоване слово мови Delphi, що означає, що далі
слідує оголошення компонентів (полів) запису;
• поле_i і тип_i — ім'я і тип i-го компоненту (поля) запису, де i=1 ...,
до;
• end — зарезервоване слово мови Delphi, що означає, що список
полів закінчений.
Приклади оголошень:
type
TPerson = record
f_name: string[20];
l_name: string[20];
day: integer;
month: integer;
year: integer;
address: string[50];
end;
TDate = record
day: integer; month: integer; year: integer;
end;
Після оголошення типу запису можна оголосити змінну-запис (або
просто запис), наприклад:
var
student : TPerson;
birthday : TDate;
Для того, щоб дістати доступ до елементу (полю) змінної-запису
(записи), потрібно вказати ім'я запису і ім'я поля, розділивши їх крапкою.
Наприклад, інструкція
ShowMessage('Ім'я: ', student.f_name + #13 + 'Адреса: ', student.address);
виводить на екран вміст полів f_name (ім'я) і address (адреса)
змінній-запису student.
Іноді тип змінної-запису оголошують безпосередньо в розділі
оголошення змінних. В цьому випадку тип запису указується відразу за
ім'ям змінної, через двокрапку. Наприклад, запис student може бути
оголошена в розділі var таким чином:
student: record
f_name:string[20];
l_name:string[20];
day:integer;
month:integer;
year:integer;
address:string[50];
end;
7.2. Інструкція with
Інструкція with дозволяє використовувати в тексті програми імена
полів без вказівки імені змінної-запису. У загальному вигляді інструкція
with виглядає таким чином:
with Ім'я do
begin
( інструкції програми }
end;
де:
• ім'я — ім'я змінної-запису;
• with — зарезервоване слово мови Delphi, що означає, що далі, до
слова end, при зверненні до полів запису ім'я, ім'я запису можна не
указувати.
Наприклад, якщо в програмі оголошений запис
student:record // інформація про студента
f_name: string[30]; // прізвище
l_name: string[20]; // ім'я
address: string[50]; // адреса
end;
і дані про студента знаходяться в полях Edit1, Edit2 і Edit3
діалогового вікна, то замість інструкцій
student.f_name := Edit1.text;
student.l_name := Edit2.text;
student.address := Edit3.text;
можна записати:
with student do begin
f_name := Edit1.text; f_name := Edit2.text; address := Edit3.text;
end;
7.3. Введення і виведення записів у файл
Запису можна зберігати у файлі. Для того, щоб програма могла
зберегти значення змінної-запису у файлі або ввести його з файлу,
необхідно оголосити файл, вказавши як тип його компонентів тип "запис".
Наприклад, інструкції
type
Треrson = record
f_riame: string [20] ;
l_name: string[20];
address: string[50];
end;
var
f: file of TPerson;
...